1. Field of the Invention
The present invention relates to the field of data communications, and more particularly to efficiently managing the transmitter and receiver buffers in a modem.
2. Description of the Related Art
Modems have long been used in the field of data communications for transmitting data from a remote location to a local location over a channel. At the remote location, digital data samples are converted to analog form at a predetermined sampling rate, such as 9600 samples/second, for transmission over the channel. These analog samples are received at the local modem, and converted back into digital form. These digital samples may then undergo processing, such as decoding, filtering or other forms of data manipulation.
Ideally, the transmitter clock at which the analog signals are sent over the channel is exactly synchronized with the receiver clock that controls the sampling rate at which the analog signals are converted back into digital form. However, this is often not the case, mostly because of non-ideality in the crystals that control the transmitter and receiver clocks. To account for these differences, an interpolator follows the analog-to-digital converter (A/D) in the local modem. The interpolator includes a timing recovery circuit that derives the transmitter clock from the digital samples of the received analog waveform. Using this information, the interpolator effectively resamples the received signal at the transmitter dock sampling rate. If the transmitter and receiver docks are exactly synchronized, then the number of samples outputted by the interpolator in a given period of time will equal the number of samples generated by the local A/D. If, however, the transmitter clock sampling rate recovered by the symbol timing recovery circuit is slower than the local A/D sampling rate (the remote underspeed case), then the slight offset in the clocks will result in a sample being lost periodically. Finally, if the recovered transmitter clock is faster than the received clock controlling the local A/D (the remote overspeed case), then periodically the interpolator will generate an extra sample in a given period of time as compared to the number of samples generated by the A/D in that same time period.
In the remote underspeed case, the receiver that receives the samples from the interpolator occasionally will skip the processing of samples because it is not being fed samples at a fast enough rate to keep up with the receiver processing speed. On the other hand, in the case of remote overspeed, the receiver must process extra samples, thereby creating a sudden demand for processing power. The receiver processor typically is heavily taxed in performing such functions as decoding and filtering. Thus, the need to process extra samples may require that the receiver processor put off performing other functions. As an alternative, the receiver processor might be designed to have enough computing power available to handle the peak demand.
Accordingly, it is desired to provide a modem that efficiently processes information and that lessens the peak demand on the receiver processor.